#ifndef MESHRESETNAMEDIALOG_H
#define MESHRESETNAMEDIALOG_H

#include "GUIMeshDialogAPI.h"
#include "GUIWidget/GUIDialogBase.h"

class QVBoxLayout;

namespace Ui {
    class MeshResetNameDialog;
}

namespace Interface {
    class FITKUnstructuredMeshVTK;
}

namespace EventOper {
    class ParaWidgetInterfaceOperator;
}

namespace GUI
{
    /**
     * @brief 网格重命名界面
     * @author liuyun
     * @date 2025-01-10
     */
    class GUIMeshDialogAPI MeshResetNameDialog :public GUIDialogBase
    {
        Q_OBJECT;
    public:
        /**
         * @brief Construct a new Mesh Geo Widget object
         * @param[i]  oper           操作器对象
         * @param[i]  obj            网格尺寸对象
         * @author liuyun
         * @date 2025-01-10
         */
        MeshResetNameDialog(EventOper::ParaWidgetInterfaceOperator * oper, Interface::FITKUnstructuredMeshVTK* obj,int &index);
        /**
         * @brief Destroy the Mesh Geo Widget object
         * @author liuyun
         * @date 2025-01-10
         */
        ~MeshResetNameDialog();
        /**
         * @brief 初始化界面
         * @author liuyun
         * @date 2025-01-10
         */
        void init();

    signals:
        /**
         * @brief 重命名完成信号
         * @author liuyun
         * @date 2025-01-10
         */
        void sigResetNameFinish();

    private slots:
        /**
         * @brief 取消按钮点击事件
         * @author liuyun
         * @date 2025-01-10
         */
        void on_pushButton_Cancel_clicked();
        /**
         * @brief ok按钮点击事件
         * @author liuyun
         * @date 2025-01-10
         */
        void on_pushButton_OK_clicked();
    private:
        /**
         * @brief 操作器对象
         * @author liuyun
         * @date 2025-01-10
         */
        EventOper::ParaWidgetInterfaceOperator* _oper = nullptr;
        /**
         * @brief 网格尺寸对象
         * @author liuyun
         * @date 2025-01-10
         */
        Interface::FITKUnstructuredMeshVTK* _obj = nullptr;
        /**
         * @brief  ui
         * @author liuyun
         * @date   2025-01-10
         */
        Ui::MeshResetNameDialog* _ui = nullptr;
        int _index={};
    };
}

#endif // MESHRESETNAMEDIALOG_H
